package com.example.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 订单表
 * </p>
 *
 * @author zh
 * @since 2024-05-15 03:49:03
 */
@Getter
@Setter
@TableName("s_order")
public class SOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 订单ID
     */
    private Long id;

    /**
     * 如果未下架还可以跳转
     */
    private Long spuId;
    /**
     * 如果skuid
     */
    private Long skuId;

    /**
     * 商品名，以防商品下架搜不到了,直接冗余
     */
    private String spuName;

    /**
     * 商品细节，把spu,sku的atrribute全写这儿
     */
    private String detail;

    /**
     * 商品数量
     */
    private Integer count;

    /**
     * 商品单价
     */
    private BigDecimal price;

    /**
     * 销售单价
     */
    private BigDecimal salePrice;

    /**
     * 标价总金额￥
     */
    private BigDecimal totalPrice;

    /**
     * 实际付款
     */
    private BigDecimal payPrice;

    /**
     * 创建订单者id,购物方
     */
    private Long userId;

    /**
     * 支付方式(支付宝，微信等)
     */
    private String payMethod;

    /**
     * 接收方姓名
     */
    private String linkUser;

    /**
     * 联系电话
     */
    private String linkPhone;

    /**
     * 接收地址
     */
    private String linkAddress;

    /**
     * 订单状态:0未支付(创建),1待发货(已支付),2已发货,3待收货,4已收货,5已评价,-1申请退货,-2已退货
     */
    private Integer state;

    /**
     * 创建订单未支付
     */
    private LocalDateTime unpaidTime;

    /**
     * 待发货1(支付时间)
     */
    private LocalDateTime preDeliveryTime;

    /**
     * 发货时间2
     */
    private LocalDateTime deliveryTime;

    /**
     * 待收货3(到达时间)
     */
    private LocalDateTime preReceiveTime;

    /**
     * 收货时间（到达7日后自动收货）4
     */
    private LocalDateTime receiveTime;

    /**
     * 评价时间5
     */
    private LocalDateTime commentTime;

    /**
     * 申请退货时间7
     */
    private LocalDateTime preReturnTime;

    /**
     * 退货完成时间8
     */
    private LocalDateTime returnTime;
    /**
     * 退货原因
     */
    private String returnReason;

    /**
     * 创建时间0(未支付)
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 状态012
     */
    private Integer status;
}
